package com.guagua.blog.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.guagua.blog.entity.Article;

import java.util.List;

public interface ArticleService extends IService<Article> {

    /**
     * 获取文章详情
     */
    Article getArticleDetail(Long id);

    /**
     * 获取用户文章总阅读量
     */
    long sumViewCount(Long userId);

    /**
     * 获取热门文章列表
     */
    List<Article> getHotArticles();

    /**
     * 获取用户收藏的文章列表
     */
    IPage<Article> getFavoriteArticles(Long userId, int page, int size);

    /**
     * 获取用户已读的文章列表
     */
    IPage<Article> getReadArticles(Long userId, int page, int size);

    /**
     * 获取用户点赞的文章列表
     */
    IPage<Article> getLikedArticles(Long userId, int page, int size);

    /**
     * 根据标签获取文章列表
     */
    IPage<Article> getArticlesByTag(Long tagId, int page, int size);

    /**
     * 保存文章标签关联
     */
    void saveArticleTags(Long articleId, List<Long> tagIds);

    /**
     * 获取用户的文章列表
     */
    IPage<Article> getUserArticles(Long userId, int page, int size);
} 